This invention relates generally to digital emulation systems and specifically to a multiprocessor based digital emulation system.
Emulation systems, or emulators, are used to test the operation of new circuits being designed. Emulators also provide circuit designers with the convenience of being able to design and test circuitry that interfaces with the emulated circuit since emulators have inputs and outputs that mimic the operation of the new circuit.
Some emulation systems are software based and run on general purpose computers. These software emulation systems are only useful for emulation where the emulated circuit is not very complex and not very fast. As the complexity and speed of the emulated circuit increases it is necessary to move more of the emulated functions into hardware. While this improves the speed of the emulation it also makes the emulation system increasingly dedicated to the emulation of one specific circuit. An extreme example of hardware "emulation" of a circuit is using field programmable gate array (FPGA) chips configured to perform all of the functions of the emulated circuitry. However, once configured the FPGAs are difficult to change in order to, for example, correct bugs in the circuit or accommodate design changes.
Other tools for circuit designers include "simulators" such as the simulator disclosed in U.S. Pat. No. 4,697,241 by Lavi which achieve a degree of configurability while operating at high speed. However, simulators such as that disclosed in the Lavi patent differ from emulators in that a simulator does not allow interfacing circuitry to be tested. This is because a simulator does not simulate the real-time operation of the new circuit but merely computes the outputs of the circuit given a pattern of signals at the new circuit's inputs. While this is adequate for checking the validity of the new circuit's logic, it falls short of allowing circuit designer's to rapidly prototype and modify a new design while detecting both logical and timing errors when the circuitry runs at the targeted operational clock frequencies.
Therefore, it is desirable to have an emulation system that is able to easily emulate various complex and fast circuits at the circuits' intended operational speeds.